const express = require("express");
const router = express.Router();
// 导入expressJoi
const expressJoi = require("@escook/express-joi");
const userinfoHandler = require("../router_handler/userinfo.js");
// 导入验证规则
const {
  name_limit,
  email_limit,
  password_limit,
  verifyAccountAndEmail_limit,
  forgetPassword_limit,
} = require("../limit/user.js");
/**
 * 提交图片
 */
router.post("/uploadAvatar", userinfoHandler.uploadAvatar);
/**
 * 绑定账号
 */
router.post("/bindAccount", userinfoHandler.bindAccount);

/**
 * 修改密码
 */
router.post(
  "/changePassword",
  expressJoi(password_limit),
  userinfoHandler.changePassword
);

/**
 * 获取用户信息
 */
router.post("/getUserInfo", userinfoHandler.getUserInfo);

/**
 * 修改用户名称
 */
router.post("/changeName", expressJoi(name_limit), userinfoHandler.changeName);

/**
 * 修改用户性别
 */
router.post("/changeSex", userinfoHandler.changeSex);

/**
 * 修改用户邮箱
 */
router.post(
  "/changeEmail",
  expressJoi(email_limit),
  userinfoHandler.changeEmail
);

/**
 * 忘记密码
 */
router.post(
  "/verifyAccountAndEmail",
  expressJoi(verifyAccountAndEmail_limit),
  userinfoHandler.verifyAccountAndEmail
);

/**
 * 登录页面修改密码
 */
router.post(
  "/changePasswordInLogin",
  expressJoi(forgetPassword_limit),
  userinfoHandler.changePasswordInLogin
);

// --------------------------用户管理-------------------------
router.post("/createAdmin", userinfoHandler.createAdmin);

/**
 * 获取管理员列表
 * @data identity
 */
router.post("/getAdminList", userinfoHandler.getAdminList);

/**编辑管理员账号信息
 * @data id, name, sex, email, department
 */
router.post("/editAdmin", userinfoHandler.editAdmin);

/**
 * 对用户进行赋权
 * @data id identity
 */
router.post("/changeIdentityToAdmin", userinfoHandler.changeIdentityToAdmin);

/**
 * 通过账号对用户搜索
 * @data account
 */
router.post("/searchUser", userinfoHandler.searchUser);

/**
 * 冻结用户 通过id 把status 置为 1
 * @data id
 */
router.post("/banUser", userinfoHandler.banUser);

/**
 * 解冻用户 通过id 把status 置为 0
 * @data id
 */
router.post("/hotUser", userinfoHandler.hotUser);

/**
 * 删除用户 通过id 把status 设置为 0
 * @data id
 */
router.post("/deleteUser", userinfoHandler.deleteUser);

// 导出路由
module.exports = router;
